import time, threading

# 参考： https://liaoxuefeng.com/books/python/process-thread/thread/index.html

# 任何进程默认就会启动一个线程，我们把该线程称为主线程，主线程又可以启动新的线程，
# Python的threading模块有个current_thread()函数，它永远返回当前线程的实例。
# 主线程实例的名字叫MainThread，子线程的名字在创建时指定，
# 我们用jimmy命名子线程。名字仅仅在打印时用来显示，完全没有其他意义，
# 如果不起名字Python就自动给线程命名为Thread-1，Thread-2

# 新线程执行的代码:
def loop():
    print(f'thread {threading.current_thread().name} is running...')
    n = 0
    while n < 5:
        n = n + 1
        print(f'thread {threading.current_thread().name} >>> {n}')
        time.sleep(1)
    print(f'thread {threading.current_thread().name} ended.')

print(f'主线程 {threading.current_thread().name} is running...')
# 创建一个新的线程
t = threading.Thread(target=loop, name='jimmy')
# 启动线程
t.start()
# 等待线程结束
t.join()
print(f'主线程 {threading.current_thread().name} ended.')